Facial gesture recognition and video analysis tool

ABSTRACT

Embodiments disclosed herein may be directed to a video communication server. In some embodiments, the video communication server includes: at least one memory including instructions; and at least one processing device configured for executing the instructions, wherein the instructions cause the at least one processing device to perform the operations of: determining a time duration of a video communication connection between a first user of a first user device and a second user of a second user device; analyzing video content transmitted between the first user device and the second user device; determining at least one gesture of at least one of the first user and the second user based on analyzing the video content; and generating a compatibility score of the first user and the second user based at least in part on the determined time duration and the at least one determined gesture.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation-in-part of and claims priorityto U.S. patent application Ser. No. 15/387,172, filed on Dec. 21, 2016,which is a continuation of and claims priority to U.S. patentapplication Ser. No. 15/197,469, filed on Jun. 29, 2016, now U.S. Pat.No. 9,531,998, which is a non-provisional of and claims priority to U.S.Provisional Patent Application No. 62/274,682 filed on Jan. 4, 2016.Priority U.S. patent application Ser. No. 15/387,172 is also acontinuation-in-part of and claims priority to U.S. patent applicationSer. No. 14/980,769, which was filed on Dec. 28, 2015, which is anon-provisional of and claims priority to U.S. Provisional PatentApplication No. 62/096,991, which was filed on Dec. 26, 2014. PriorityU.S. patent application Ser. No. 15/387,172 is also acontinuation-in-part of and claims priority to U.S. patent applicationSer. No. 14/790,913, which was filed on Jul. 2, 2015, which is anon-provisional of and claims priority to U.S. Provisional PatentApplication No. 62/020,711, which was filed on Jul. 3, 2014. The presentapplication is also a continuation-in-part of U.S. application Ser. No.15/003,769, which was filed on Jan. 21, 2016, which is a non-provisionalof and claims priority to U.S. Provisional Patent Application No.62/106,127. The contents of all of the aforementioned applications areincorporated by reference herein in their entirety.

U.S. patent application Ser. No. 15/197,469 is a continuation-in-part ofand claims priority to U.S. patent application Ser. No. 14/790,913,filed on Jul. 2, 2015, and U.S. patent application Ser. No. 14/980,769,filed on Dec. 28, 2015, the contents of all of which are incorporated byreference herein in their entirety. The present application is acontinuation-in-part of and claims priority to U.S. patent applicationSer. No. 15/003,769, filed on Jan. 21, 2016, the contents of which areincorporated by reference herein in their entirety. U.S. patentapplication Ser. No. 15/003,769 claims priority to U.S. ProvisionalApplication No. 62/106,127, filed on Jan. 21, 2015, the contents ofwhich are incorporated by reference herein in their entirety. U.S.patent application Ser. No. 14/790,913 claims priority to U.S.Provisional Application No. 62/020,711, filed on Jul. 3, 2014, thecontents of which are incorporated by reference herein in theirentirety. U.S. patent application Ser. No. 14/980,769, claims priorityto U.S. Provisional Application No. 62/096,991, filed on Dec. 26, 2014,the contents of which are incorporated by reference herein in theirentirety.

TECHNICAL FIELD

Embodiments disclosed herein relate to a facial gesture recognition andvideo analysis tool for real-time video communications between devices.

BACKGROUND

Today, social media applications enable users across the world togenerate and maintain relationships with others like never before. Forexample, a user who recently moved to a new city may utilize a socialmedia application to meet other users who live nearby in the new city,as well as to reconnect with users in another city on the other side ofthe globe. Different social media applications enable users tocommunicate with others through a variety of communication channels,such as text messaging, audio messaging, picture sharing, and/or livevideo streaming.

However, communicating via social media applications has its share ofshortcomings, which are particularly evident when communication viasocial media applications is compared to in-person communication. Forexample, many social cues regularly identified and received duringin-person communication, such as slight facial movements and/or vocalinflections, may be imperceivable and/or otherwise go undetected overknown social media communication channels. So, while social mediaapplications indeed provide a variety of channels for users to digitallyinteract with others across the world, their users may still bepresented with challenges associated with clarity and/or quality ofcommunication. Further, systems and techniques as described herein mayallow users to communicate more effectively with others by providingcertain described contextual clues and feedback.

SUMMARY

Briefly, aspects of the present invention relate to improvedcommunication clarity, quality, intelligence, and security through theuse of video analysis techniques and communications suggestions. In someembodiments, a video communication server is provided. The videocommunication server may include: a memory including instructions and aprocessing device configured to execute the instructions. Theinstructions may cause the processing device to perform the operationsof: determining, using a communication unit in the processing device, aduration of a video communication connection between first and seconduser devices; analyzing, using a graphical processing unit (GPU) in theprocessing device, video content transmitted between the user devices;determining, using a gesture analysis unit in the processing device,gestures of the users based on analyzing the video content; andgenerating, using a compatibility unit in the processing device, acompatibility score of the first user and the second user based at leastin part on the video communication connection duration and a gesture.

In some embodiments, the instructions further cause the processingdevice to perform the operations of: determining, using a location unitin the processing device, a location of a first user device;identifying, using the location unit, a plurality of other user devicesdetermined to be located within a predetermined proximity of the firstuser device; and filtering, using a profile management unit in theprocessing device, another user device from the plurality of other userdevices based on one or more user preferences of the first user toresult in a filtered plurality of other user devices, wherein the seconduser device is included in the filtered plurality of other user devices.

In some embodiments, the instructions further cause the processingdevice to perform the operations of: randomly selecting, using theprofile management unit, the second user device from the filteredplurality of other user devices; and establishing, using thecommunication unit, the video communication connection between the firstuser device and the second user device.

In some embodiments, determining a gesture includes: identifying, usinga facial recognition unit in the processing device, a facial feature ofthe first user in the video content at a first time; identifying, usingthe facial recognition unit, the facial feature of the first user in thevideo content at a second time; and determining, using the facialrecognition unit, movement of the facial feature from a first locationat a first time to a second location at a second time, wherein thedetermined movement of the facial feature includes a gesture.

In some embodiments, generating a compatibility score includes:assigning, using the compatibility unit, a numerical value to thedetermined video communication connection duration and to the gesture;weighting, using the compatibility unit, the numerical value of thedetermined video communication connection duration and the numericalvalue of the gesture; and processing, according to operations includedin a computer-readable memory in the compatibility unit, the numericalvalue of the determined time duration and the numerical value of thegesture.

In some embodiments, analyzing the video content includes: determining,using the GPU, a numerical value of a pixel associated with a facialfeature identified in the video content.

In some embodiments, generating the compatibility score includes:identifying, using a vocal recognition unit in the processing device, afirst vocal pitch of the first user in the video content at a firsttime; identifying, using the vocal recognition unit, a second vocalpitch of the first user in the video content at a second time; anddetermining, using the vocal recognition unit, a change of vocal pitchof the first user, wherein the change of vocal pitch includes a gesture.

In some embodiments, a non-transitory computer readable medium includingcode is provided. The code may, when executed by a processing device ofa video communication server, cause the processing device to perform theoperations of: determining, using a communication unit included in theprocessing device, a duration of a video communication connectionbetween a first user of a first user device and a second user of asecond user device; analyzing, using a graphical processing unit (GPU)in the processing device, video content transmitted between the firstuser device and the second user device; determining, using a gestureanalysis unit in the processing device, a gesture of one of the firstuser and the second user based on analyzing the video content; andgenerating, using a compatibility unit included in the processingdevice, a compatibility score of the first user and the second userbased at least in part on the determined video communication connectionduration and the gesture.

In some embodiments, the non-transitory computer readable medium furtherincludes code that, when executed by the processing device of the videocommunication server, causes the processing device to perform theoperations of: determining, using a location unit in the processingdevice, a location of a first user device; identifying, using thelocation unit, a plurality of other user devices determined to belocated within a predetermined proximity of the first user device; andfiltering, using a profile management unit in the processing device,another user device from the plurality of other user devices based userpreferences of the first user to result in a filtered plurality of otheruser devices, wherein the second user device is included in the filteredplurality of other user devices.

In some embodiments, the non-transitory computer readable medium furtherincludes code that, when executed by the processing device of the videocommunication server, causes the processing device to perform theoperations of: randomly selecting, using the profile management unit,the second user device from the filtered plurality of other userdevices; and establishing, using the communication unit, the videocommunication connection between the first and second user devices.

In some embodiments, the non-transitory computer readable medium furtherincludes code that, when executed by the processing device of the videocommunication server, causes the processing device to perform theoperations of: identifying, using a facial recognition unit in theprocessing device, a facial feature of the first user in the videocontent at a first time; identifying, using the facial recognition unit,the facial feature of the first user in the video content at a secondtime; and determining, using the facial recognition unit, movement ofthe facial feature from a first location at a first time to a secondlocation at a second time, wherein the determined movement of the facialfeature includes a gesture.

In some embodiments, the non-transitory computer readable medium furtherincludes code that, when executed by the processing device of the videocommunication server, causes the processing device to perform theoperations of: identifying, using a vocal recognition unit in theprocessing device, a first vocal pitch of the first user in the videocontent at a first time; identifying, using the vocal recognition unit,a second vocal pitch of the first user in the video content at a secondtime; and determining, using the vocal recognition unit, a change ofvocal pitch of the first user, wherein the change of vocal pitchincludes a gesture.

In some embodiments, the non-transitory computer readable medium furtherincludes code that, when executed by the processing device of the videocommunication server, causes the processing device to perform theoperations of: assigning, using the compatibility unit, a numericalvalue to the determined video communication connection duration and thegesture; weighting, using the compatibility unit, the numerical value ofthe determined video communication connection duration and the numericalvalue of the gesture; and processing, according to operations includedin computer-readable memory in the compatibility unit, the numericalvalue of the determined video communication connection duration and thenumerical value of the gesture.

In some embodiments, the non-transitory computer readable medium furtherincludes code that, when executed by the processing device of the videocommunication server, causes the processing device to perform theoperations of: determining, using the GPU, a numerical value of a pixelassociated with a facial feature identified in the video content.

In some embodiments, the provided method may include: determining, usinga communication unit in a processing device, a time duration of a videocommunication connection between first and second user devices;analyzing, using a graphical processing unit (GPU) in the processingdevice, video content transmitted between the first and second userdevices; determining, using a gesture analysis unit in the processingdevice, a gesture of either or both of first and second users based onanalyzing the video content; and generating, using a compatibility unitin the processing device, a compatibility score of the first user andthe second user based at least in part on the determined videocommunication connection duration and the gesture.

In some embodiments, the method further includes: determining, using alocation unit in the processing device, a location of a first userdevice; identifying, using the location unit, a plurality of other userdevices determined to be located within a predetermined proximity of thefirst user device; and filtering, using a profile management unit in theprocessing device, another user device from the plurality of other userdevices based on user preferences of the first user to result in afiltered plurality of other user devices, wherein the second user deviceis included in the filtered plurality of other user devices.

In some embodiments, the method further includes: randomly selecting,using the profile management unit, the second user device from thefiltered plurality of other user devices; and establishing, using thecommunication unit, the video communication connection between the firstand second user devices.

In some embodiments, the method further includes: identifying, using afacial recognition unit in the processing device, a facial feature ofthe first user in the video content at a first time; identifying, usingthe facial recognition unit, the facial feature of the first user in thevideo content at a second time; and determining, using the facialrecognition unit, movement of the facial feature from a first locationat a first time to a second location at a second time, wherein thedetermined movement of the facial feature includes a gesture.

In some embodiments, the method further includes: identifying, using avocal recognition unit in the processing device, a first vocal pitch ofthe first user in the video content at a first time; identifying, usingthe vocal recognition unit, a second vocal pitch of the first user inthe video content at a second time; and determining, using the vocalrecognition unit, a change of vocal pitch of the first user, wherein thechange of vocal pitch includes a gesture.

In some embodiments, the method further includes: assigning, using thecompatibility unit, a numerical value to the determined videocommunication connection duration and to the gesture; weighting, usingthe compatibility unit, the numerical value of the determined videocommunication connection duration and the numerical value of thegesture; and processing, according to an algorithm included in thecompatibility unit, the numerical value of the determined videocommunication connection duration and the numerical value of thegesture.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference is now made to the following detailed description, taken inconjunction with the accompanying drawings. It is emphasized thatvarious features may not be drawn to scale and the dimensions of variousfeatures may be arbitrarily increased or reduced for clarity ofdiscussion. Further, some components may be omitted in certain figuresfor clarity of discussion.

FIG. 1 shows an exemplary video communication connection between twousers in accordance with some embodiments of the disclosure;

FIG. 2 shows an exemplary system diagram in accordance with someembodiments of the disclosure;

FIG. 3A shows an exemplary functional diagram in accordance with someembodiments of the disclosure;

FIG. 3B shows an exemplary system diagram in accordance with someembodiments of the disclosure;

FIG. 4 shows an exemplary method of performing operations associatedwith establishing a video communication between two users in accordancewith some embodiments of the disclosure;

FIG. 5 shows an exemplary method of performing operations associatedgenerating a compatibility score based on a terminated videocommunication connection between two users in accordance with someembodiments of the disclosure;

FIG. 6 shows an exemplary method of performing operations associatedwith facial gesture recognition and scoring in accordance with someembodiments of the disclosure; and

FIG. 7 shows an exemplary method of performing operations associatedwith vocal gesture recognition and scoring in accordance with someembodiments of the disclosure.

In the various figures, the same reference numbers are provided for thesame system elements, whereas in other instances similar elements shownin different figures may have different reference numbers. The figuresand associated description provide a plurality of different embodimentsand similar elements among the figures will illustrate to one ofordinary skill in the art the possible functionality and connection ofthose elements in the multiple and collective embodiments disclosedherein.

DETAILED DESCRIPTION

Introduction

Embodiments of the present disclosure may be directed to a system thatenables establishment of a video communication connection between two ormore user devices. In addition to providing a video communicationchannel via which the two or more users may communicate, the system mayfurther enable real-time analysis of video content (e.g., the live videofeed) transmitted between the user devices during the videocommunication connection. Through analysis of the transmitted videocontent, the system may repeatedly detect facial features of the usersto ensure that images and/or video feeds of the users' faces areappropriately captured and transmitted via the video communicationconnection. The system may further provide security and blocking ofobjectionable content such as by ensuring that only a user's facialimages are transmitted. Additionally, the system may identify varioussocial cues such as facial gestures and/or vocal inflections of eachuser. Upon identification, the system may assign a numerical value toeach identified social cue. In this manner, emotional intelligenceassociated with social cues readily recognized by people duringin-person communication that may otherwise have been undetected by usersof the video communication connection may be considered by the systemwhen generating a compatibility score of the users and/or to otherwiseprovide social cues to the users.

Illustrative Example

Referring now to the figures, FIG. 1 illustrates an exemplary videocommunication connection 100 for enabling a video communication betweena first user 102 and a second user 104. For example, each of the firstuser 102 and the second user 104 may hold a user device (e.g., a firstuser device 106 and a second user device 108, respectively), such as asmartphone or tablet, in front of his or her face so that a camera 110,112 included in each respective user device 106, 108 may capture a livevideo feed of each user's face (e.g., the first user's face 114 and/orthe second user's face 116). The first user's face 114 may be presentedto the second user 104 on the second user device 108, as well as on thefirst user device 106 for monitoring purposes. Similarly, the seconduser's face 116 may be presented to the first user 102 on the first userdevice 106, as well as on the second user device 108 for monitoringpurposes. Additionally, an inset display 118, 120 may further provideinformation associated with the first user 102 and the second user 104(e.g., a virtual currency balance, a status, and/or the like) in aninset display on the first user device 106 and the second user device108, respectively.

To ensure that only faces 114, 116 of the users 102, 104 are displayedthroughout the entirety of the video communication connection (asopposed to inappropriate body parts or other potentially undesirableimages), a video communication server 210 (not pictured in FIG. 1 butshown in FIGS. 2A, 3A, and 3B) facilitating the video communicationconnection may analyze the live video feeds of the users 102, 104.Additionally and/or alternatively, each user's respective user device106, 108 may facilitate the video communication connection and/oranalyze the live video feeds of the users 102, 104 in accordance withembodiments described herein. Analyzing the live video feeds may enablethe video communication server 210 and/or the user devices 106, 108 todetect facial features of each user 102, 104. If the cameras 110, 112capturing live video feeds of the respective users 102, 104 capturesubject matter that is determined by the server to not be a part of theuser's face 114, 116 (e.g., identifies non-facial features or an absenceof any facial features in the live video feed), then the videocommunication server 210 and/or the user devices 106, 108 may terminatethe video communication connection or take another action such asinterrupting the live video feeds, filtering or obscuring all or part ofthe video images, and/or adjusting the focus of the respective cameras110, 112 for security purposes and/or decency considerations.

Continuing with the same example under the assumption that each user102, 104 allows the camera 110, 112 to capture only her or his face 114,116, and/or the video communication server 210 otherwise providessuitable security measures, the video communication server 210 and/orthe user devices 106, 108 may further analyze the live video feeds ofeach user's face 114, 116 during the video communication connection toidentify social cues, such as facial gestures or vocal inflections, ofeach user 102, 104. Social cues may be identified by the videocommunication server 210 and/or the user devices 106, 108 using avariety of video analysis techniques including comparisons of facialfeature locations over time. For example, the video communication server210 and/or the user devices 106, 108 may identify social cues of eachuser 102, 104 based on detected movements of facial features and/orchanges in vocal pitch or tone identified in the live video feeds.

An exemplary social cue identification may include the videocommunication server 210 and/or the user devices 106, 108 detectingraised eyebrows and a smile of the first user 102 based on an analysisof facial images transmitted during the video communication connection.The video communication server 210 and/or the user devices 106, 108 maydetermine, based on a predetermined table and/or database of knownsocial cues, that these detected social cues (e.g., raised eyebrows andsmile) convey the first user's 102 interest in the second user 104.Accordingly, the video communication server 210 and/or the user devices106, 108 may then assign the detected raised eyebrow gesture and thedetected smile gesture to corresponding numerical values. The videocommunication server 210 and/or the user devices 106, 108 may thencombine the assigned numerical values with other numerical valuesassociated with other detected social cues of the users 102, 104, aswell as numerical values associated with external factors such as aduration of the video communication connection, to generate acompatibility score of the two users 102, 104. The compatibility scoremay numerically communicate how compatible the two users 102, 104 may bewith each other based on social cues detected by the video communicationserver 210 and/or the user devices 106, 108 during the videocommunication connection.

After the video communication connection is terminated, the videocommunication server 210 and/or the user devices 106, 108 may present toeach user 102, 104 the generated compatibility score, which may becontemplated by the users 102, 104 when determining whether they wouldlike to pursue subsequent communication with each other. In this manner,embodiments disclosed herein may be useful in a variety of social mediaapplications, including but not limited to video speed datingapplications.

System Environment

FIG. 2 illustrates a more detailed system 200 for enabling establishmentof a video communication connection between a first user 202 of a firstuser device 204 and a second user 206 of a second user device 208 asdescribed herein (e.g., as described in the illustrative example of FIG.1). Although two users 202, 206 and user devices 204, 208 areillustrated in the presently described embodiment, the conceptsdisclosed here may be similarly applicable to an embodiment thatincludes more than two users and user devices.

In some embodiments, the system 200 may include the first user device204, the second user device 208, and a video communication server 210.In some embodiments, the first user device 204 and/or the second userdevice 208 may include a handheld computing device, a smart phone, atablet, a laptop computer, a desktop computer, a personal digitalassistant (PDA), a smart watch, a wearable device, a biometric device,an implanted device, a camera, a video recorder, an audio recorder, atouchscreen, a computer server or video communications server, and/orthe like. In some embodiments, the first user device 204 and/or thesecond user device 208 may each include a plurality of user devices asdescribed herein. In some embodiments, the first user device 204 mayinclude various elements of a computing environment as described herein.For example, the first user device 204 may include a processing unit212, a memory unit 214, an input/output (I/O) unit 216, and/or acommunication unit 218. Each of the processing unit 212, the memory unit214, the input/output (I/O) unit 216, and/or the communication unit 218may include one or more subunits as described herein for performingoperations associated with providing relevant contextual features to thefirst user 202 during a video communication connection.

In some embodiments, the second user device 208 may include variouselements of a computing environment as described herein. For example,the second user device 208 may include a processing unit 220, a memoryunit 222, an input/output (I/O) unit 224, and/or a communication unit226. Each of the processing unit 220, the memory unit 222, theinput/output (I/O) unit 224, and/or the communication unit 226 mayinclude one or more subunits as described herein for performingoperations associated with providing relevant contextual features to thesecond user 206 during a video communication connection.

In some embodiments, the video communication server 210 may include acomputing device such as a mainframe server, a content server, acommunication server, a laptop computer, a desktop computer, a handheldcomputing device, a smart phone, a smart watch, a wearable device, atouch screen, a biometric device, a video processing device, an audioprocessing device, a cloud-based computing solution and/or service,and/or the like. In some embodiments, the video communication server 210may include a plurality of video communication servers configured tocommunicate with one another and/or implement load-balancing techniquesdescribed herein.

In some embodiments, the video communication server 210 may includevarious elements of a computing environment as described herein. Forexample, the video communication server 210 may include a processingunit 228, a memory unit 230, an input/output (I/O) unit 232, and/or acommunication unit 234. Each of the processing unit 228, the memory unit230, the input/output (I/O) unit 232, and/or the communication unit 234may include one or more subunits and/or other computing instances asdescribed herein for performing operations associated with identifyingrelevant contextual features for presentation to one or more users(e.g., the first user 202 and/or the second user 206) during a videocommunication connection.

The first user device 204, the second user device 208, and/or the videocommunication sever 210 may be communicatively coupled to one another bya network 212 as described herein. In some embodiments, the network 212may include a plurality of networks. In some embodiments, the network212 may include any wireless and/or wired communications network thatfacilitates communication between the first user device 204, the seconduser device 208, and/or the video communication server 210. For example,the one or more networks may include an Ethernet network, a cellularnetwork, a computer network, the Internet, a wireless fidelity (Wi-Fi)network, a light fidelity (Li-Fi) network, a Bluetooth network, a radiofrequency identification (RFID) network, a near-field communication(NFC) network, a laser-based network, and/or the like.

Computing Architecture

FIG. 3A and FIG. 3B illustrate exemplary functional and system diagramsof the video communication server 210 for enabling the videocommunication connection and associated video processing techniquesdescribed herein. Specifically, FIG. 3A provides a functional blockdiagram of the video communication server 210, whereas FIG. 3B providesa detailed system diagram of the video communication server 210.Additionally, any units and/or subunits described herein with referenceto the video communication server 210 of FIG. 3A and/or FIG. 3B may beincluded in one or more elements of FIG. 2 such as the first user device204 (e.g., the processing unit 212, the memory unit 214, the I/O unit216, and/or the communication unit 218), the second user device 208(e.g., the processing unit 220, the memory unit 222, the I/O unit 224,and/or the communication unit 226), and/or the video communicationserver 210 of FIG. 1 and/or FIG. 2 (e.g., the processing unit 228, thememory unit 230, the I/O unit 232, and/or the communication unit 234).The video communication server 210 and/or any of its units and/orsubunits described herein may include general hardware,specifically-purposed hardware, and/or software.

The video communication server 210 may include, among other elements, aprocessing unit 228, a memory unit 230, an input/output (I/O) unit 232,and/or a communication unit 234. As described herein, each of theprocessing unit 228, the memory unit 230, the I/O unit 232, and/or thecommunication unit 234 may include and/or refer to a plurality ofrespective units, subunits, and/or elements. Furthermore, each of theprocessing unit 228, the memory unit 230, the I/O unit 232, and/or thecommunication unit 234 may be operatively and/or otherwisecommunicatively coupled with each other so as to facilitate the videocommunication and analysis techniques described herein.

The processing unit 228 may control any of the one or more units 230,232, 234, as well as any included subunits, elements, components,devices, and/or functions performed by the units 230, 232, 234 includedin the video communication server 210. The described sub-elements of thevideo communication server 210 may also be included in similar fashionin any of the other units and/or devices included in the system 200 ofFIG. 2. Additionally, any actions described herein as being performed bya processor may be taken by the processing unit 228 alone and/or by theprocessing unit 228 in conjunction with one or more additionalprocessors, units, subunits, elements, components, devices, and/or thelike. Additionally, while only one processing unit 228 may be shown inFIG. 3A and/or FIG. 3B, multiple processing units may be present and/orotherwise included in the video communication server 210 or elsewhere inthe overall system (e.g., system 200 of FIG. 2). Thus, whileinstructions may be described as being executed by the processing unit228 (and/or various subunits of the processing unit 228), theinstructions may be executed simultaneously, serially, and/or otherwiseby one or multiple processing units 228.

In some embodiments, the processing unit 228 may be implemented as oneor more computer processing unit (CPU) chips and/or graphical processingunit (GPU) chips and may include a hardware device capable of executingcomputer instructions. The processing unit 228 may execute instructions,codes, computer programs, and/or scripts. The instructions, codes,computer programs, and/or scripts may be received from and/or stored inthe memory unit 230, the I/O unit 232, the communication unit 234,subunits and/or elements of the aforementioned units, other devicesand/or computing environments, and/or the like.

In some embodiments, the processing unit 228 may include, among otherelements, subunits such as a profile management unit 310, a contentmanagement unit 312, a location determination unit 314, a graphicalprocessing unit (GPU) 316, a facial/vocal recognition unit 318, agesture analysis unit 320, a compatibility unit 322, and/or a resourceallocation unit 324. Each of the aforementioned subunits of theprocessing unit 228 may be communicatively and/or otherwise operablycoupled with each other.

The profile management unit 310 may facilitate generation, modification,analysis, transmission, and/or presentation of a user profile associatedwith a user. For example, the profile management unit 310 may prompt auser via a user device to register by inputting authenticationcredentials, personal information (e.g., an age, a gender, and/or thelike), contact information (e.g., a phone number, a zip code, a mailingaddress, an email address, a name, and/or the like), and/or the like.The profile management unit 310 may also control and/or utilize anelement of the I/O unit 232 to enable a user of the user device to takea picture of herself/himself. The profile management unit 310 mayreceive, process, analyze, organize, and/or otherwise transform any datareceived from the user and/or another computing element so as togenerate a user profile of a user that includes personal information,contact information, user preferences, a photo, a video recording, anaudio recording, a textual description, a virtual currency balance, ahistory of user activity, user preferences, settings, and/or the like.

The content management unit 312 may facilitate generation, modification,analysis, transmission, and/or presentation of media content. Forexample, the content management unit 312 may control the audio-visualenvironment and/or appearance of application data during execution ofvarious processes. Media content for which the content management unit312 may be responsible may include advertisements, images, text, themes,audio files, video files, documents, and/or the like. In someembodiments, the content management unit 312 may also interface with athird-party content server and/or memory location.

The location determination unit 314 may facilitate detection,generation, modification, analysis, transmission, and/or presentation oflocation information. Location information may include globalpositioning system (GPS) coordinates, an Internet protocol (IP) address,a media access control (MAC) address, geolocation information, anaddress, a port number, a zip code, a server number, a proxy name and/ornumber, device information (e.g., a serial number), and/or the like. Insome embodiments, the location determination unit 314 may includevarious sensors, a radar, and/or other specifically-purposed hardwareelements for enabling the location determination unit 314 to acquire,measure, and/or otherwise transform location information.

The GPU unit 316 may facilitate generation, modification, analysis,processing, transmission, and/or presentation of visual content (e.g.,media content described above). In some embodiments, the GPU unit 316may be utilized to render visual content for presentation on a userdevice, analyze a live streaming video feed for metadata associated witha user and/or a user device responsible for generating the live videofeed, and/or the like. The GPU unit 316 may also include multiple GPUsand therefore may be configured to perform and/or execute multipleprocesses in parallel.

The facial/vocal recognition unit 318 may facilitate recognition,analysis, and/or processing of visual content, such as a live videostream of a user's face. For example, the facial/vocal recognition unit318 may be utilized for identifying facial features of users and/oridentifying vocal inflections of users. In some embodiments, thefacial/vocal recognition unit 318 may include GPUs and/or otherprocessing elements so as to enable efficient analysis of video contentin either series or parallel. The facial/vocal recognition unit 318 mayutilize a variety of audio-visual analysis techniques such as pixelcomparison, pixel value identification, voice recognition, audiosampling, video sampling, image splicing, image reconstruction, videoreconstruction, audio reconstruction, and/or the like to verify anidentity of a user, to verify and/or monitor subject matter of a livevideo feed, and/or the like.

The gesture analysis unit 320 may facilitate recognition, analysis,and/or processing of visual content, such as a live video stream of auser's face. Similar to the facial/vocal recognition unit 318, thegesture analysis unit 320 may be utilized for identifying facialfeatures of users and/or identifying vocal inflections of users.Further, however, the gesture analysis unit 320 may analyze movementsand/or changes in facial features and/or vocal inflection identified bythe facial/vocal recognition unit 318 to identify social cues of users.As used herein, social cues may include facial gestures such as eyebrowmovements, eyeball movements, eyelid movements, ear movements, noseand/or nostril movements, lip movements, chin movements, cheekmovements, forehead movements, tongue movements, teeth movements, vocalpitch shifting, vocal tone shifting, changes in word delivery speed,keywords, word count, and/or the like.

The compatibility unit 322 may facilitate analysis and/or processing ofsocial cues identified by the gesture analysis unit 320. For example,the compatibility unit 322 may quantify identified social cues byassigning a numerical value (e.g., an alphanumeric character) to eachidentified social cue. In some embodiments, numerical values ofidentified social cues may be weighted and/or assigned a grade (e.g., analphanumeric label such as A, B, C, D, F, and/or the like) associatedwith a perceived value and/or quality by the compatibility unit 322. Inaddition to assigning numerical values of identified social cues, thecompatibility unit 322 may quantify and/or otherwise utilize otherfactors associated with the video communication connection such as atime duration of the video communication connection, an intensity of anidentified social cue, and/or the like. For example, the compatibilityunit 322 may assign a larger weight to an identified social cue thatoccurred during a video communication connection lasting one minute thanan identified social cue that occurred during a video communicationconnection lasting thirty seconds. The compatibility unit 322 maydetermine appropriate numerical values based on a predetermined table ofpredefined social cues and/or a variety of factors associated with avideo communication connection such as time duration, a frequency,intensity, and/or duration of an identified social cue, and/or the like.

The compatibility unit 322 may also facilitate the collection, receipt,processing, analysis, and/or transformation of user input received fromuser devices of users participating in a video communication connection(e.g., user devices 106, 108 of FIG. 1 and/or user devices 204, 208 ofFIG. 2). For example, the compatibility unit 322 may facilitate theprompting of a first participant in a video communication connection toprovide feedback of a second participant. This feedback may be received,processed, weighted, and/or transformed by the compatibility unit 322.

The compatibility unit 322 may further utilize the numerical values ofidentified social cues and/or other factors, as well as any receivedfeedback (e.g., user inputs such as textual and/or numerical reviews,and/or the like), to generate a compatibility score associated with thecompatibility of the two users between which the video communication isheld. In some embodiments, the compatibility score may be indicative ofa how well the two users may get along in subsequent communications(e.g., video communications, in-person communications, and/or the like).As such, the compatibility unit 322 may facilitate presentation of thecompatibility score to each participant of a video communicationconnection after termination of the video communication connection. Insome embodiments, the compatibility unit 322 may generate and/orotherwise represent a compatibility score in the form of a percentage,an alphanumerical grade, an icon, a sound, an image, text, a color,and/or the like.

Additionally, the compatibility unit 322 may facilitate, alone and/or inconjunction with the communication unit 234, the profile management unit310, and/or the location determination unit 312, matching of userprofiles based on information associated with user profiles of usersdetermined to be located in a predetermined location (and/or inproximity of a predetermined location), a user history of generatedcompatibility scores associated with a user, and/or the like. Asdescribed herein, any unit and/or subunit (e.g., element) of the videocommunication server 210 and/or any other computing environment may beutilized to perform any operation. Particularly, the video communicationserver 210 may not include a generic computing system, but instead mayinclude a customized computing system designed to perform the variousmethods described herein.

The resource allocation unit 324 may facilitate the determination,monitoring, analysis, and/or allocation of computing resourcesthroughout the video communication server 210 and/or other computingenvironments. For example, the video communication server 210 mayfacilitate a high volume of (e.g., multiple) video communicationconnections between a large number of supported users and/or associateduser devices. As such, computing resources of the video communicationserver 210 utilized by the processing unit 228, the memory unit 230, theI/O unit, and/or the communication unit 234 (and/or any subunit of theaforementioned units) such as processing power, data storage space,network bandwidth, and/or the like may be in high demand at varioustimes during operation. Accordingly, the resource allocation unit 324may be configured to manage the allocation of various computingresources as they are required by particular units and/or subunits ofthe video communication server 210 and/or other computing environments.In some embodiments, the resource allocation unit 324 may includesensors and/or other specially-purposed hardware for monitoringperformance of each unit and/or subunit of the video communicationserver 210, as well as hardware for responding to the computing resourceneeds of each unit and/or subunit. In some embodiments, the resourceallocation unit 324 may utilize computing resources of a secondcomputing environment separate and distinct from the video communicationserver 210 to facilitate a desired operation.

For example, the resource allocation unit 324 may determine a number ofsimultaneous video communication connections and/or incoming requestsfor establishing video communication connections. The resourceallocation unit 324 may then determine that the number of simultaneousvideo communication connections and/or incoming requests forestablishing video communication connections meets and/or exceeds apredetermined threshold value. Based on this determination, the resourceallocation unit 324 may determine an amount of additional computingresources (e.g., processing power, storage space of a particularnon-transitory computer-readable memory medium, network bandwidth,and/or the like) required by the processing unit 228, the memory unit230, the I/O unit 232, the communication unit 234, and/or any subunit ofthe aforementioned units for enabling safe and efficient operation ofthe video communication server 210 while supporting the number ofsimultaneous video communication connections and/or incoming requestsfor establishing video communication connections. The resourceallocation unit 324 may then retrieve, transmit, control, allocate,and/or otherwise distribute determined amount(s) of computing resourcesto each element (e.g., unit and/or subunit) of the video communicationserver 210 and/or another computing environment.

In some embodiments, factors affecting the allocation of computingresources by the resource allocation unit 324 may include the number ofongoing video communication connections and/or other communicationchannel connections, a duration of time during which computing resourcesare required by one or more elements of the video communication server210, and/or the like. In some embodiments, computing resources may beallocated to and/or distributed amongst a plurality of second computingenvironments included in the video communication server 210 based on oneor more factors mentioned above. In some embodiments, the allocation ofcomputing resources of the resource allocation unit 324 may include theresource allocation unit 324 flipping a switch, adjusting processingpower, adjusting memory size, partitioning a memory element,transmitting data, controlling one or more input and/or output devices,modifying various communication protocols, and/or the like. In someembodiments, the resource allocation unit 324 may facilitate utilizationof parallel processing techniques such as dedicating a plurality of GPUsincluded in the processing unit 228 for processing a high-quality videostream of a video communication connection between multiple units and/orsubunits of the video communication server 210 and/or other computingenvironments.

In some embodiments, the memory unit 230 may be utilized for storing,recalling, receiving, transmitting, and/or accessing various filesand/or information during operation of the video communication server210. For example, the memory unit 230 may be utilized for storing videostreams, storing, recalling, and/or updating user profile information,and/or the like. The memory unit 230 may include various types of datastorage media such as solid state storage media, hard disk storagemedia, and/or the like. The memory unit 230 may include dedicatedhardware elements such as hard drives and/or servers, as well assoftware elements such as cloud-based storage drives. For example, thememory unit 230 may include various subunits such as an operating systemunit 326, an application data unit 328, an application programminginterface (API) unit 330, a profile storage unit 332, a content storageunit 334, a video storage unit 336, a secure enclave 338, and/or a cachestorage unit 340.

The memory unit 230 and/or any of its subunits described herein mayinclude random access memory (RAM), read only memory (ROM), and/orvarious forms of secondary storage. RAM may be used to store volatiledata and/or to store instructions that may be executed by the processingunit 228. For example, the data stored may be a command, a currentoperating state of the video communication server 210, an intendedoperating state of the video communication server 210, and/or the like.As a further example, data stored in the memory unit 230 may includeinstructions related to various methods and/or functionalities describedherein. ROM may be a non-volatile memory device that may have a smallermemory capacity than the memory capacity of a secondary storage. ROM maybe used to store instructions and/or data that may be read duringexecution of computer instructions. In some embodiments, access to bothRAM and ROM may be faster than access to secondary storage. Secondarystorage may be comprised of one or more disk drives and/or tape drivesand may be used for non-volatile storage of data or as an over-flow datastorage device if RAM is not large enough to hold all working data.Secondary storage may be used to store programs that may be loaded intoRAM when such programs are selected for execution. In some embodiments,the memory unit 230 may include one or more databases for storing anydata described herein. Additionally or alternatively, one or moresecondary databases located remotely from the video communication server210 may be utilized and/or accessed by the memory unit 230.

The operating system unit 326 may facilitate deployment, storage,access, execution, and/or utilization of an operating system utilized bythe video communication server 210 and/or any other computingenvironment described herein (e.g., a user device such as user devices106, 108 of FIG. 1 and/or user devices 204, 208 of FIG. 2). In someembodiments, the operating system may include various hardware and/orsoftware elements that serve as a structural framework for enabling theprocessing unit 228 to execute various operations described herein. Theoperating system unit 326 may further store various pieces ofinformation and/or data associated with operation of the operatingsystem and/or the video communication server 210 as a whole, such as astatus of computing resources (e.g., processing power, memoryavailability, resource utilization, and/or the like), runtimeinformation, modules to direct execution of operations described herein,user permissions, security credentials, and/or the like.

The application data unit 328 may facilitate deployment, storage,access, execution, and/or utilization of an application utilized by thevideo communication server 210 and/or any other computing environmentdescribed herein (e.g., a user device). For example, users may berequired to download, access, and/or otherwise utilize a softwareapplication on a user device such as a smartphone in order for variousoperations described herein to be performed. As such, the applicationdata unit 328 may store any information and/or data associated with theapplication. Information included in the application data unit 328 mayenable a user to execute various operations described herein. Theapplication data unit 328 may further store various pieces ofinformation and/or data associated with operation of the applicationand/or the video communication server 210 as a whole, such as a statusof computing resources (e.g., processing power, memory availability,resource utilization, and/or the like), runtime information, modules todirect execution of operations described herein, user permissions,security credentials, and/or the like.

The API unit 300 may facilitate deployment, storage, access, execution,and/or utilization of information associated with APIs of the videocommunication server 210 and/or any other computing environmentdescribed herein (e.g., a user device). For example, video communicationserver 210 may include one or more APIs for enabling various devices,applications, and/or computing environments to communicate with eachother and/or utilize the same data. Accordingly, the API unit 330 mayinclude API databases containing information that may be accessed and/orutilized by applications and/or operating systems of other devicesand/or computing environments. In some embodiments, each API databasemay be associated with a customized physical circuit included in thememory unit 230 and/or the API unit 330. Additionally, each API databasemay be public and/or private, and so authentication credentials may berequired to access information in an API database.

The profile storage unit 332 may facilitate deployment, storage, access,and/or utilization of information associated with user profiles of usersby the video communication server 210 and/or any other computingenvironment described herein (e.g., a user device). For example, theprofile storage unit 332 may store one or more user's contactinformation, authentication credentials, user preferences, user historyof behavior, personal information, and/or metadata. In some embodiments,the profile storage unit 332 may communicate with the profile managementunit 310 to receive and/or transmit information associated with a user'sprofile.

The content storage unit 334 may facilitate deployment, storage, access,and/or utilization of information associated with requested content bythe video communication server 210 and/or any other computingenvironment described herein (e.g., a user device). For example, thecontent storage unit 334 may store one or more images, text, videos,audio content, advertisements, and/or metadata to be presented to a userduring operations described herein. In some embodiments, the contentstorage unit 334 may communicate with the content management unit 312 toreceive and/or transmit content files.

The video storage unit 336 may facilitate deployment, storage, access,analysis, and/or utilization of video content by the video communicationserver 210 and/or any other computing environment described herein(e.g., a user device). For example, the video storage unit 336 may storeone or more live video feeds transmitted during a video communicationconnection. Live video feeds of each user transmitted during a videocommunication connection may be stored by the video storage unit 336 sothat the live video feeds may be analyzed by various components of thevideo communication server 210 both in real time and at a time afterreceipt of the live video feeds. In some embodiments, the video storageunit 336 may communicate with the GPUs 316, the facial/vocal recognitionunit 318, the gesture analysis unit 320, and/or the compatibility unit322 to facilitate analysis of any stored video information. In someembodiments, video content may include audio, images, text, video feeds,and/or any other media content.

The secure enclave 338 may facilitate secure storage of data. In someembodiments, the secure enclave 338 may include a partitioned portion ofstorage media included in the memory unit 230 that is protected byvarious security measures. For example, the secure enclave 338 may behardware secured. In other embodiments, the secure enclave 338 mayinclude one or more firewalls, encryption mechanisms, and/or othersecurity-based protocols. Authentication credentials of a user may berequired prior to providing the user access to data stored within thesecure enclave 338.

The cache storage unit 340 may facilitate short-term deployment,storage, access, analysis, and/or utilization of data. For example, thecache storage unit 240 may be utilized for storing numerical valuesassociated with users' recognized facial gestures for computing acompatibility score immediately after termination of a videocommunication connection. In some embodiments, the cache storage unit348 may serve as a short-term storage location for data so that the datastored in the cache storage unit 348 may be accessed quickly. In someembodiments, the cache storage unit 340 may include RAM and/or otherstorage media types that enable quick recall of stored data. The cachestorage unit 340 may included a partitioned portion of storage mediaincluded in the memory unit 230.

The I/O unit 232 may include hardware and/or software elements forenabling the video communication server 210 to receive, transmit, and/orpresent information. For example, elements of the I/O unit 232 may beused to receive user input from a user via a user device, present a livevideo feed to the user via the user device, and/or the like. In thismanner, the I/O unit 232 may enable the video communication server 210to interface with a human user. As described herein, the I/O unit 232may include subunits such as an I/O device 342, an I/O calibration unit344, and/or video driver 346.

The I/O device 342 may facilitate the receipt, transmission, processing,presentation, display, input, and/or output of information as a resultof executed processes described herein. In some embodiments, the I/Odevice 342 may include a plurality of I/O devices. In some embodiments,the I/O device 342 may include one or more elements of a user device, acomputing system, a server, and/or a similar device.

The I/O device 342 may include a variety of elements that enable a userto interface with the video communication server 210. For example, theI/O device 342 may include a keyboard, a touchscreen, a button, asensor, a biometric scanner, a laser, a microphone, a camera, and/oranother element for receiving and/or collecting input from a user.Additionally and/or alternatively, the I/O device 342 may include adisplay, a screen, a sensor, a vibration mechanism, a light emittingdiode (LED), a speaker, a radio frequency identification (RFID) scanner,and/or another element for presenting and/or otherwise outputting datato a user. In some embodiments, the I/O device 342 may communicate withone or more elements of the processing unit 228 and/or the memory unit230 to execute operations described herein. For example, the I/O device342 may include a display, which may utilize the GPU 316 to presentvideo content stored in the video storage unit 336 to a user of a userdevice during a video communication connection.

The I/O calibration unit 344 may facilitate the calibration of the I/Odevice 342. For example, the I/O calibration unit 344 may detect and/ordetermine one or more settings of the I/O device 342, and then adjustand/or modify settings so that the I/O device 342 may operate moreefficiently.

In some embodiments, the I/O calibration unit 344 may utilize a videodriver 346 (or multiple video drivers) to calibrate the I/O device 342.For example, the video driver 346 may be installed on a user device sothat the user device may recognize and/or integrate with the I/O device342, thereby enabling video content to be displayed, received,generated, and/or the like. In some embodiments, the I/O device 342 maybe calibrated by the I/O calibration unit 344 by based on informationincluded in the video driver 346.

The communication unit 234 may facilitate establishment, maintenance,monitoring, and/or termination of communications (e.g., a videocommunication connection) between the video communication server 210 andother devices such as user devices (e.g., user devices 106, 108 of FIG.1 and/or user devices 204, 208 of FIG. 2), other computing environments,third party server systems, and/or the like. The communication unit 234may further enable communication between various elements (e.g., unitsand/or subunits) of the video communication server 210. In someembodiments, the communication unit 234 may include a network protocolunit 348, an API gateway 350, an encryption engine 352, and/or acommunication device 354. The communication unit 234 may includehardware and/or software elements.

The network protocol unit 348 may facilitate establishment, maintenance,and/or termination of a communication connection between the videocommunication server 210 and another device (e.g., user devices 106, 108of FIG. 1 and/or user devices 204, 208 of FIG. 2) by way of a network.For example, the network protocol unit 348 may detect and/or define acommunication protocol required by a particular network and/or networktype. Communication protocols utilized by the network protocol unit 348may include Wi-Fi protocols, Li-Fi protocols, cellular data networkprotocols, Bluetooth® protocols, WiMAX protocols, Ethernet protocols,powerline communication (PLC) protocols, and/or the like. In someembodiments, facilitation of communication between the videocommunication server 210 and any other device, as well as any elementinternal to the video communication server 210, may include transformingand/or translating data from being compatible with a first communicationprotocol to being compatible with a second communication protocol. Insome embodiments, the network protocol unit 348 may determine and/ormonitor an amount of data traffic to consequently determine whichparticular network protocol is to be used for establishing a videocommunication connection, transmitting data, and/or performing otheroperations described herein.

The API gateway 350 may facilitate the enablement of other devicesand/or computing environments to access the API unit 330 of the memoryunit 230 of the video communication server 210. For example, a userdevice may access the API unit 330 via the API gateway 350. In someembodiments, the API gateway 350 may be required to validate usercredentials associated with a user of a user device prior to providingaccess to the API unit 330 to the user. The API gateway 350 may includeinstructions for enabling the video communication server 210 tocommunicate with another device.

The encryption engine 352 may facilitate translation, encryption,encoding, decryption, and/or decoding of information received,transmitted, and/or stored by the video communication server 210. Usingthe encryption engine, each transmission of data may be encrypted,encoded, and/or translated for security reasons, and any received datamay be encrypted, encoded, and/or translated prior to its processingand/or storage. In some embodiments, the encryption engine 352 maygenerate an encryption key, an encoding key, a translation key, and/orthe like, which may be transmitted along with any data content.

The communication device 354 may include a variety of hardware and/orsoftware specifically purposed to enable communication between the videocommunication server 210 and another device, as well as communicationbetween elements of the video communication server 210. In someembodiments, the communication device 354 may include one or more radiotransceivers, chips, analog front end (AFE) units, antennas, processingunits, memory, other logic, and/or other components to implementcommunication protocols (wired or wireless) and related functionalityfor facilitating communication between the video communication server210 and any other device. Additionally and/or alternatively, thecommunication device 354 may include a modem, a modem bank, an Ethernetdevice such as a router or switch, a universal serial bus (USB)interface device, a serial interface, a token ring device, a fiberdistributed data interface (FDDI) device, a wireless local area network(WLAN) device and/or device component, a radio transceiver device suchas code division multiple access (CDMA) device, a global system formobile communications (GSM) radio transceiver device, a universal mobiletelecommunications system (UMTS) radio transceiver device, a long termevolution (LTE) radio transceiver device, a worldwide interoperabilityfor microwave access (WiMAX) device, and/or another device used forcommunication purposes.

System Operation

With specific reference to the system diagram of the video communicationserver 210 of FIG. 3B, an exemplary operation of the video communicationserver 210 is described. To begin operation of embodiments describedherein, a user of a user device (e.g., user device 204, 208 of FIG. 2)may download an application associated with operations described hereinto a user device (e.g., user device 204, 208 of FIG. 2). For example,the user may download the application from an application store or alibrary of applications that are available for download via an onlinenetwork. In some embodiments, downloading the application may includetransmitting application data from the application data unit 328 of thevideo communication server 210 to the user device (e.g., user device204, 208 of FIG. 2) via the communication unit 234.

Upon download and installation of the application on the user device(e.g., user device 204, 208 of FIG. 2), the user may select and open theapplication. The application may then prompt the user via the userdevice (e.g., user device 204, 208 of FIG. 2) to register and create auser profile. The user may input, through the user's respective device'sI/O unit 216, 224 authentication credentials such as a username andpassword, an email address, contact information, personal information(e.g., an age, a gender, and/or the like), user preferences, and/orother information as part of the user registration process. Thisinputted information, as well as any other information described herein,may be inputted by the user of the user device and/or outputted by thevideo communication server 210 to the user of the user device using theI/O device 342. Once inputted, the information may be received by theuser device and subsequently transmitted from the user device to theprofile management unit 310 of the processing unit 228 and/or theprofile storage unit 332 of the memory unit 232, which receive(s) theinputted information via the communication unit 234.

In some embodiments, registration of the user may include transmitting atext message (and/or another message type) requesting the user toconfirm registration and/or any inputted information to be included inthe user profile from the profile management unit 310 to the user device(e.g., user device 204, 208 of FIG. 2). The user may confirmregistration via the user device (e.g., user device 204, 208 of FIG. 2),and an acknowledgement may be transmitted from the user device (e.g.,user device 204, 208 of FIG. 2), via the communication unit 234, to theprofile management unit 310 of the processing unit 228, which receivesthe acknowledgement and generates the user profile based on the inputtedinformation.

After registration is complete, the user may be prompted by theapplication (e.g., application data stored in the application data unit328 via the API interface 330, the API gateway 350, and/or thecommunication device 354) to select a gender corresponding to users withwhich the user desires to be connected via the application. For example,if the user is a female and wants to video chat with males, then thefemale may select male as a desired gender. Alternatively, the user maynot select a gender, and therefore the gender of other users with whomthe user may share a video communication connection may be random. Theselected (or unselected) gender preference of other users may bereceived by the I/O device associated with an I/O unit 216, 224 of arespective user device 204, 208 and subsequently transmitted from theuser device to the computing environment for storage in the profilestorage unit 332.

Next, the user may utilize an I/O device associated with an I/O unit216, 224 of her/his user device 204, 208 to capture an picture of her orhis face. This picture, once generated, may be included in the userprofile of the user for identification of the user. In some embodiments,the user may capture an image of her or his face using a camera on theuser device (e.g., a smartphone camera). In other embodiments, the usermay simply select and/or upload an existing image file using the userdevice. The user may further be enabled to modify the image by applyinga filter, cropping the image, changing the color and/or size of theimage, and/or the like. Accordingly, the user device may receive theimage (and/or image file) and transmit the image to the videocommunication server 210 for processing. Alternatively, the image may beprocessed locally on the user device.

The image may be received and analyzed (e.g., processed) by thefacial/vocal recognition unit 318. In some embodiments, the facial/vocalrecognition unit 318 may utilize the GPU 316 for analysis of the image.The facial/vocal recognition unit 318 may process the image of theuser's face to identify human facial features. This functionality mightbe found in one of the processing units 212, 220 of the respective userdevices 204, 208 and/or in the processing unit 228 of the videocommunication server 210. Various techniques may be deployed duringprocessing of the image to identify facial features, such as pixel colorvalue comparison. For example, the facial/vocal recognition unit 318 mayidentify objects of interest in the image based on a comparison of pixelcolor values and/or locations in the image. Each identified object ofinterest may be counted and compared to predetermined and/or otherwiseknown facial features included in a database using the facial/vocalrecognition unit 318. The facial/vocal recognition unit 318 maydetermine at least a partial match (e.g., a partial match that meetsand/or exceeds a predetermined threshold of confidence) between anidentified object of interest and a known facial feature to therebyconfirm that the object of interest in the image is indeed a facialfeature of the user. Based on a number and/or a location of identifiedfacial features in the image, the facial/vocal recognition unit 318 maydetermine that the image is a picture of the user's face (as opposed toother subject matter, inappropriate subject matter, and/or the like). Inthis manner, the facial/vocal recognition unit 318 provides a layer ofsecurity by ensuring that each image included in a user's profile is apicture of the user's face.

When the facial/vocal recognition unit 318 determines that the image isan acceptable picture of the user's face, the video communication server210 may store the image in the profile storage unit 332 so that theimage may be included in the user's user profile. Conversely, when thefacial/vocal recognition unit 318 determines that the image is not anacceptable picture of the user's face (e.g., the image is determined tonot be a picture of the user's face), the facial/vocal recognition unit318 may generate a notification to be sent to and/or displayed by theuser device for presentation to the user that explains that the providedimage is unacceptable. The user may then repeat the process of capturingan image of her or his face and/or resubmitting an existing image fileusing the user device. In some embodiments, the user may be prohibitedby the facial/vocal recognition unit 318 of the video communicationserver 210 and/or a video driver 346 of her/his respective user device204, 208 from continuing application use until an image of the user'sface is determined by the facial/vocal recognition unit 318 to belegitimate. As an additional security measure, an additional personalscreening may be provided for an acceptable base image. This base imagemay be specifically compared via computer video processing of liveimages for closeness.

As stated above, the image may be processed by the facial/vocalrecognition unit 318 on the user device. In other embodiments, the imagemay be transmitted to another device (e.g., video communication server210, a third party server, and/or the like) for processing. In someembodiments, any facial features of the user identified by thefacial/vocal recognition unit 318 may be stored in the profile storageunit 332 for later recall during analysis of video content of the user.

Next, the location determination unit 314 may determine the location ofthe user device of the user (and therefore the user) using varioustechniques. For example, the location determination under 314 maydetermine GPS coordinates, an IP address, a proximity of a predeterminedlocation, a nearest zip code, and/or the like of the user device.Location information of the user's user device may be stored by thevideo communication server 210 in the profile storage unit 332 so thatit may be included in the user's user profile. In some embodiments, thelocation determination unit 314 of the video communication server 210may perform the location determination steps associated with locating auser device (e.g., user device 204, 208 of FIG. 2) described herein.Alternatively, the location determination unit 314 local to a userdevice 204, 208 may perform the location determination steps associatedwith locating a user device (e.g., user device 204, 208 of FIG. 2)described herein.

Once the image of the user's face is detected and/or determined to besufficient for inclusion in the user's user profile by the facial/vocalrecognition unit 318 and the location of the user's user device isdetermined by the location determination unit 314, the user mayinitiate, using the user device (e.g., user device 204, 208 of FIG. 2),a request to begin a video communication connection between the userdevice and a second user device of another user. For example, in thecontext of a social media application that enables users to video chatin a speed dating format, the user may initiate a request to beconnected to another user of the desired gender (or an unspecifiedgender) within a predetermined proximity of the determined location ofthe user's user device (e.g., user device 204, 208 of FIG. 2). In someembodiments, the request may be initiated by the user using the I/Odevice 342 within the I/O unit 232 of the user device 204, 208. Forexample, the user may perform a gesture recognized by the I/O device 342(and/or the gesture analysis unit 320), such as holding down one fingeron a touchscreen for a predetermined amount of time, to initiate therequest.

After initiation, the request may be transmitted to and/or received bythe communication unit 234 of the video communication server 210. Therequest may include connection information such as wireless bandinformation, encryption information, wireless channel information,communication protocols and/or standards, and/or other informationrequired for establishing a video communication connection between theuser device and a second user device.

The communication unit 234 may then utilize one or more units of theprocessing unit 228 and/or the memory unit 230 to determine a devicewith which the user device may establish a communication connection. Forexample, the communication unit 234 may utilize the profile managementunit 310 (and/or the profile storage unit 332) and/or the locationdetermination unit 314 to identify a plurality of second user devicesassociated with users of the desired gender (if specified) that arelocated within a predetermined proximity of the determined location ofthe user's user device. In some embodiments, the location determinationunit 314 may first identify the plurality of second user devices. Next,the profile management unit 310 may access the profile storage unit 332to identify which of the second user devices included in the pluralityof second user devices identified by the location determination unit 314are associated with second users of the gender desired by the user. Theprofile management unit 314 and/or the compatibility unit 322 may thenfilter a second user device from the plurality of second user devices toresult in a filtered plurality of second user devices. As such, eachsecond user device associated with a second user of a different genderthan the gender desired by the user may be filtered (e.g., removed) fromthe plurality of second users so that each second user device includedin the filtered plurality of second user devices is associated with asecond user of the gender desired by the user. In other embodiments,gender filtering of second user devices may occur prior to determininglocations of second user devices.

The communication unit 234, the profile management unit 310, and/or thecompatibility unit 322 may select a second user device from the filteredplurality of second user devices. In some embodiments, the selectedsecond user device may be randomly selected by the communication unit234, the profile management unit 310, and/or the compatibility unit 322from the filtered plurality of second user devices. In otherembodiments, the selected second user device may be selected by thecommunication unit 234, the profile management unit 310, and/or thecompatibility unit 322 from the filtered plurality of second userdevices based on a variety of factors. For example, the communicationunit 234, the profile management unit 310, and/or the compatibility unit322 may select the selected second user device based on determining thatit is the closest second user device of the filtered plurality of seconduser devices to the user device of the user. The communication unit 234,the profile management unit 310, and/or the compatibility unit 322 mayalso select the selected second user device based on determining atleast a partial match between information included in the user profileassociated with the user and information included in the user profileassociated with a second user of the selected second user device.

The communication unit 234 may then establish a video communicationconnection between the user device of the user and the selected seconduser device. In some embodiments, establishing the video communicationconnection may include receiving and/or determining one or morecommunication protocols (e.g., network protocols) using the networkprotocol unit 348. For example, the video communication connection maybe established by the communication unit 234 using communicationprotocols included in the request to establish the video communicationconnection submitted by the user.

In some embodiments, the established video communication connectionbetween the user device of the user and the selected second user devicemay be configured by the communication unit 234 to last for apredetermined duration. For example, according to rules defined by theapplication and/or stored in the application data unit 328, the videocommunication connection may be established for a duration of oneminute, after which the video communication connection may beterminated. Limiting the duration of the video communication connectionmay force communicating users to form an opinion of each otherrelatively quickly (e.g., within the allotted time duration of the videocommunication).

While the video communication connection is being established (e.g.,prior to enabling the user and the second user to communicate via a livevideo feed), the content management unit 312 may present each user withcontent that the two users may discuss during their video communicationconnection (if desired). For example, the provided content may serve asan ice breaker for conversation and may include a random fact, a joke, aquote, a news story, an image, a video clip, an audio clip, text, and/orthe like. The content may be retrieved from the content storage unit 334by the content management unit 312 and presented to each user using theI/O device 342 included in each of their respective user devices 204,208.

Once the video communication connection has been established by thecommunication unit 234, the user device and/or the second user devicemay enable the user and the second user, respectively, to stream a livevideo feed to one another. For example, the user may utilize the I/Odevice 342 (e.g., a camera and a microphone) included in the user device204, 208 to capture a live video feed of the user's face and voice.Similarly, the second user may utilize the I/O device 342 (e.g., acamera and a microphone) included in the second user device to capture alive video feed of the second user's face and voice. In someembodiments, the live video feeds and/or the live audio feeds capturedby the user device may be transmitted from the user device to the seconduser device for display to the second user, and vice versa. In thismanner, the user and the second user may communicate by viewing and/orlistening to the live video feeds and/or the live audio feeds receivedfrom the other user (e.g., the second user and/or the user,respectively) using the established video communication connection.

Additionally, the live video feeds and/or the live audio feeds of thecommunicating users may be transmitted to and/or received by the videocommunication server 210 for processing. For example, the GPU 316, thefacial/vocal recognition unit 318, the gesture analysis unit 320, and/orthe compatibility unit 322 may analyze the live video feeds and/or thelive audio feeds. In some embodiments, the GPU 316, the facial/vocalrecognition unit 318, the gesture analysis unit 320, and/or thecompatibility unit 322 may analyze the live video feeds and/or the liveaudio feeds to determine whether the live video feeds and/or the liveaudio feeds include appropriate content only (e.g., do not includeinappropriate content such as inappropriate subject matter, profanity,and/or the like). In some embodiments, the facial/vocal recognition unit318, the gesture analysis unit 320, and/or the compatibility unit 322may analyze the live video feeds and/or the live audio feeds in realtime during the duration of the video communication connection and/orafter the video communication connection has been terminated.

Similar to the processes outlined above that are associated withconfirming the captured image of the user's face indeed includes onlythe user's face, the GPU 316 and/or the facial/vocal recognition unit318 may analyze the live video feeds and/or the live audio feeds todetermine that the live video feeds being transmitted between the usersby way of the video communication connection include only each user'sface. For example, the facial/vocal recognition unit 318 may employvarious pixel comparison techniques described herein to identify facialfeatures in the live video feeds of each user to determine whether thelive video feeds are indeed appropriate. Additionally, the facial/vocalrecognition unit 318 may analyze any captured audio of each user.Analysis of captured audio may include vocal recognition techniques sothat the identity of each user may be confirmed. Further, thefacial/vocal recognition unit 318 may analyze captured audio of eachuser to identify keywords, changes in vocal pitch and/or vocal tone,and/or other objects of interest. Identifying objects of interest suchas changes in vocal pitch and/or vocal tone or keywords in a user'sspeech may enable the facial/vocal recognition unit 318 to determinewhether that user is laughing, crying, yelling, screaming, usingsarcasm, and/or is otherwise displaying a particular emotion (e.g., apositive emotion and/or a negative emotion).

If the facial/vocal recognition unit 318 determines any content of thelive video feeds and/or the live audio feeds is inappropriate based onits analysis of the live video feeds and/or the live audio feeds (e.g.,based on determining no facial features are present in the live videofeeds and/or determining that inappropriate subject matter is present inthe live video and/or audio feeds), then the communication unit 234 mayterminate the video communication connection. For example, if thefacial/vocal recognition unit 318 determines that the user's face hasleft the frame being captured by a video camera on the user device, thecommunication unit 234 may terminate and/or otherwise suspend the videocommunication connection.

Accordingly, any objects of interest identified by the facial/vocalrecognition unit 318 (e.g., facial features, a vocal identity, and/orthe like) may be analyzed by the gesture analysis unit 320. In someembodiments, the gesture analysis unit 320 may compare identifiedobjects of interest over time. For example, the gesture analysis unit320 may determine an amount of movement of one or more facial featuresbased on pixel locations of identified facial features, a change incolor of one or more facial features, a change in vocal inflection,vocal pitch, vocal phrasing, rate of speech delivery, and/or vocal tone,and/or the like. The gesture analysis unit 320 may, based on theanalysis of the live video feeds and/or the live audio feeds, determineone or more gestures performed by the user and/or the second user. Forexample, based on determining that both corners of the user's lips movedupwards in relation to other identified facial features, such as theuser's chin, the gesture analysis unit 320 may determine that the userhas smiled. In some embodiments, the gesture analysis unit 320 maydetermine a gesture has been performed by a user based on a combinationof factors such as multiple facial feature movements, vocal inflections,speaking of keywords, and/or the like. In some embodiments, the gestureanalysis unit 320 may determine a gesture has been performed based ondetermining at least a partial match between identified facial featuremovements, vocal changes, and/or the like and a predetermined gesturepatterns stored in a database (e.g., stored in memory unit 230). In someembodiments, a gesture may include a detected movement of one or morefacial features, a facial expression of an emotion, a change in vocalinflection, tone, and/or speech pattern, a recitation of one or morekeywords, phrases, and/or syllables, and/or any other audio-visualexpression associated with an emotion and/or a feeling. In someembodiments, the gesture analysis unit 320 of the video communicationserver 210 may perform the video analysis and/or gesture identificationsteps described herein. Alternatively, the gesture analysis unit 320 ofa user device (e.g., user device 204, 208 of FIG. 2) may perform thevideo analysis and/or gesture identification steps described herein.

Each identified gesture may next be assigned a numerical valueassociated with a predetermined emotion by the gesture analysis unit 320and/or the compatibility unit 322. For example, an identified smilegesture may be assigned a positive numerical value, whereas anidentified frown gesture may be assigned a negative numerical value.Additionally and/or alternatively, the gesture analysis unit 320 and/orthe compatibility unit 322 may assign different weights to the numericalvalues of different identified gestures. For example, a numerical valueassociated with an identified large smile gesture might be weighted bythe gesture analysis unit 320 and/or the compatibility unit 322 moreheavily than a numerical value associated with an identified small smirkgesture.

After expiration of the time duration of the video communicationconnection, the communication unit 234 may terminate the videocommunication connection. The compatibility unit 322 may determine anamount of time associated with the duration of the video communicationconnection. In some embodiments, the duration of the video communicationconnection may be predetermined. In other embodiments, the duration ofthe video communication connection may be shorter than a predeterminedtime duration if the user and/or the second user decides to terminatethe video communication connection early. The compatibility unit 322 mayassign a numerical value to the time duration of the videocommunication. In this manner, the compatibility unit 322 may attempt toreflect an amount of interest between the user and the second user basedon how long the video communication connection lasted.

For example, a video communication connection lasting for the entirepredetermined time duration may indicate interest between the user andthe second user (or at least may indicate that there was no reducedlevel of interest). Conversely, a video communication connection lastingfor a portion of the predetermined time duration may indicate a reducedlevel of interest between the user and the second user. Accordingly, thenumerical value assigned by the compatibility unit 322 to the timeduration associated with the video communication connection lasting fora portion of the predetermined time duration may be less than thenumerical value assigned by the compatibility unit 322 to the timeduration associated with the video communication connection lasting forthe entire predetermined time duration.

The compatibility unit 322 may combine the numerical value associatedwith the time duration of the video communication and numerical valuesassociated with gestures identified by the gesture analysis unit 320 togenerate a compatibility score. As described above, the compatibilityscore may represent how compatible the user is with the second userbased on the analysis of the live video feeds and/or the live audiofeeds. The compatibility score may be presented to the user and/or thesecond user after termination of the video communication connection tobe used by the user and/or the second user in determining whether theuser and/or the second user would like to communicate again with eachother. For example, a high compatibility score (e.g., 98%) may suggestthat the user and the second user are highly compatible, and thus mayindicate that the each of user and the second user would like to pursuesubsequent communication with each other. Alternatively, a lowcompatibility score (e.g., 14%) may suggest that the user and the seconduser are not highly compatible, and thus may indicate that the each ofuser and the second user would not like to pursue subsequentcommunication with each other.

Next, the user and/or the second user may be enabled via the I/O device342 to select whether she or he desires to share contact information(e.g., information stored in the users' profiles) with the second userand/or the user, respectively. If both the user and the second userselect to share contact information, perhaps based on consideration of ahigh compatibility score, the user and the second user may share contactinformation with each other, and the communication unit 234 may enablethe user and the second user to communicate via a variety ofcommunication channels as described herein. Additionally, thecompatibility unit 322 may increment a digit counter associated witheach of the user and the second user. These digit counters may serve asa virtual currency during operation of the application described hereinand may be included in each respective user's user profile.

Conversely, if one of the users selects not to share contactinformation, perhaps based on consideration of a mediocre compatibilityscore, contact information of each user may not be shared between theuser and the second user. Instead, the user and/or the second user maybe enabled by the compatibility unit 322 and/or the profile managementunit 310 to spend (e.g., transfer) one or more units of virtual currencyin order to reattempt communication with the second user and/or theuser, respectively. Virtual currency spent in this fashion may cause thecompatibility unit 322 and/or the profile management unit 310 totransfer virtual currency from an account associated with the user to anaccount associated with the second user, or vice versa. For example, thedigit counter of the user may be decremented a predetermined amount bythe profile management unit 310 and/or the compatibility unit 322,whereas the digit counter of the second user may be incremented thepredetermined amount by the profile management unit 310 and/or thecompatibility unit 322. The user and/or the second user may accept orreject the reattempt at communication using the I/O device 342. Ifaccepted, the communication unit 234 may reestablish the videocommunication connection for a predetermined amount of time.

In some embodiments, the application data stored in the application dataunit 328 and/or the API unit 330 may enable the application describedherein to interface with social media applications. For example, a usermay be enabled to import from a social media application so that theuser may establish video communication connections with existingcontacts. The communication unit 234 may further enable the user tocommunicate in various communication channels such as text messaging,video chatting, picture sharing, audio sharing, and/or the like.

At various times throughout operation of the application describedherein, advertisements and/or notifications of performed actions may bepresented to each of the users by the content management unit 312. Forexample, if a participating user of a video communication connectionends a video communication connection prematurely (e.g., beforeexpiration of the predetermined time duration of the video communicationconnection), then the user may be forced to watch an advertisementvideo.

In some embodiments, the user may be enabled by the communication unit234 to leave a first video communication connection for a second videocommunication connection. For example, the communication unit 234 may,in response to receiving a request to initiate a second videocommunication connection, terminate a first video communicationconnection with a first second user device and establish a second videocommunication connection with another second user device.

The profile management unit 310 may enable the user to report anyexperienced negative behavior of other uses. For example, if a livevideo feed of a second user displays inappropriate subject matter and/ora live audio feed of a second user displays profanity, the user mayprovide feedback to the video communication server 210 indicatingnegative behavior associated with the second user. If any user receivesa number of negative reports associated with inappropriate behavior thatmeets or exceeds a predetermined threshold, that user may be banned fromand/or otherwise limited access to the application for a predeterminedperiod of time by the profile management unit 310.

In some embodiments, the profile management unit 310 may further enablepurchase of virtual currency, facilitate the transfer of real monetaryfunds between bank accounts, and/or the like. Additionally, the profilemanagement unit 310 may track behavior of the user and may providerewards, such as virtual currency, based on actions performed by theuser during operation of the application.

Method Descriptions

FIG. 4 shows an exemplary method 400 for performing operationsassociated with establishment of a video communication connection asdescribed herein. At block 410, the method 400 may include determining,using a location determination unit 314 included in a processing unit228 of a video communication server 210, a location of a first userdevice. At block 420, the method 400 may include identifying, using thelocation determination unit 314, a plurality of second user devicesdetermined to be located within a predetermined proximity of the firstuser device. At block 430, the method 400 may include filtering, usingthe location determination unit 314, a profile management unit 310,and/or a graphical processing unit (GPU) 316 of the processing unit 228,a second user device from the plurality of second user devices based onone or more user preferences associated with the first user device andstored in a profile storage unit 332 of a memory unit 230 of the videocommunication server 210 to thereby result in a filtered plurality ofsecond user devices. At block 440, the method 400 may include randomlyselecting, using the profile management unit 310 and/or a contentmanagement unit 312 of the processing unit 228 of the videocommunication server 210, a second user device included in the filteredplurality of second user devices. At block 450, the method 400 mayinclude establishing, using a communication device 354 and/or a networkprotocol unit 348 of a communication unit 234 of the video communicationserver 210, a video communication connection for a predetermined amountof time between the first user device and the randomly-selected seconduser device.

FIG. 5 shows an exemplary method 500 for performing operationsassociated with generation of a compatibility score as described herein.At block 510, the method 500 may include terminating, using acommunication device 354 and/or a network protocol unit 348 of acommunication unit 234 of the video communication server 210, a videocommunication connection between a first user device and a second userdevice. At block 520, the method 500 may include determining, using theGPU 316 of the processing unit 228 of the video communication server 210and/or a video driver 346 included in an I/O unit 232 of either thefirst or second user device, a duration of the video communicationconnection. At block 530, the method 500 may include analyzing, usingthe GPU 316 and/or facial/vocal recognition unit 318 of the processingunit 228 of the video communication server 210, video contenttransmitted between the first user device and the second user deviceusing the video communication connection. At block 540, the method 500may include determining, using the GPU 316, the facial/vocal recognitionunit 318, and/or the gesture analysis unit 320 of the processing unit228 of the video communication server 210 at least one facial gesture ofat least one of a first user associated with the first user device and asecond user associated with the second user device based on analyzingthe video content. At block 550, the method 500 may include generating,using the GPU 316 and/or a compatibility unit 322 of the processing unit228 of the video communication server 210, a compatibility score of thefirst user and the second user based at least in part on the timeduration and the at least one facial gesture.

FIG. 6 shows an exemplary method 600 for performing operationsassociated with assignment of numerical values to identified facialgestures as described herein. At block 610, the method 600 may includereceiving, using a communication device 354 of a communication unit 234of a video communication server 210, video content of a videocommunication between a first user and a second user. At block 620, themethod 600 may include identifying, using the GPU 316, the facial/vocalrecognition unit 318, and/or the gesture analysis unit 320 of theprocessing unit 228 of the video communication server 210, at a firsttime in the video content, at least one facial feature of at least oneof the first user and the second user. At block 630, the method 600 mayinclude identifying, using the GPU 316, the facial/vocal recognitionunit 318, and/or the gesture analysis unit 320 of the processing unit228 of the video communication server 210, at a second time in the videocontent, the at least one facial feature. At block 640, the method 600may include determining, using the GPU 316, the facial/vocal recognitionunit 318, and/or the gesture analysis unit 320 of the processing unit228 of the video communication server 210, based at least in part on acomparison of the at least one facial feature at the first time and theat least one facial feature at the second time, at least one facialgesture of at least one of the first user and the second user. At block650, the method 600 may include assigning, using the GPU 316, thefacial/vocal recognition unit 318, and/or the gesture analysis unit 320of the processing unit 228 of the video communication server 210, anumerical value to the at least one facial gesture. The numerical valuemay then be stored by the GPU 316 of the processing unit 228 of thevideo communication server 210 in the profile storage unit 332, theapplication data unit 328, and/or the cache storage unit 340 of thememory unit 230 of the video communication server 210.

FIG. 7 shows an exemplary method 700 for performing operationsassociated with assignment of numerical values to identified changes invocal pitch as described herein. At block 710, the method 700 mayinclude receiving, using a communication device 354 of a communicationunit 234 of a video communication server 210, audio content of a videocommunication between a first user and a second user. At block 720, themethod 700 may include identifying, using the GPU 316, the facial/vocalrecognition unit 318, and/or the gesture analysis unit 320 of theprocessing unit 228 of the video communication server 210, at a firsttime in the audio content, a first pitch of a voice of the first user.At block 730, the method 700 may include identifying, using the GPU 316,the facial/vocal recognition unit 318, and/or the gesture analysis unit320 of the processing unit 228 of the video communication server 210, ata second time in the audio content, a second pitch of the voice. Atblock 740, the method 700 may include determining, using the GPU 316,the facial/vocal recognition unit 318, and/or the gesture analysis unit320 of the processing unit 228 of the video communication server 210,based at least in part on a comparison of the first pitch and the secondpitch, a change in pitch of the voice. At block 750, the method 700 mayinclude assigning, using the GPU 316, the facial/vocal recognition unit318, and/or the gesture analysis unit 320 of the processing unit 228 ofthe video communication server 210, a numerical value to the change inpitch of the voice.

Objectionable Content

In some embodiments, a video communications and personal compatibilitycommunications system is provided, wherein the system comprises: a) atleast one memory comprising instructions; b) a video communicationsdevice operable to receive and transmit video communications betweenfirst and second user devices; c) at least one profile management unit;d) at least one profile database; e) at least one compatibility unit;and d) at least one processing device in communication with and operableto manage the video communications device, the at least one profilemanagement unit, the at least one profile database, and the at least onecompatibility unit, the at least one processing device further operableto execute the instructions stored in the at least one memory, whereinexecuting the instructions causes the at least one processor to:initiate a video communication session between first and second users onthe first and second user devices respectively, the at least one profiledatabase operable to receive profile data for each of the first andsecond users from the profile management unit; analyze video transmittedbetween the first and second user devices in coordination with the videocommunications device; determine during the video communication sessionwhether the transmitted video contains objectionable content; implementa safety protocol based on determining the transmitted video comprisesobjectionable content; receive a compatibility indication from each ofthe first and second devices if the safety protocol does not otherwiseterminate the video communication session; determine, using thecompatibility unit, a compatibility between the first and second usersbased at least in part on the received compatibility indications; andcommunicate an indication of the determined compatibility to the firstand second user devices.

In some embodiments, executing the instructions that cause the at leastone processor to determine the transmitted video comprises objectionablecontent further causes the at least one processor to: identify an objectof interest comprised in the transmitted video; compare the object ofinterest to flagged objects stored in a flagged objects database,wherein flagged objects are objects other than facial features of thefirst and second users; and determine at least a partial match betweenthe object of interest and a flagged object in the flagged objectdatabase.

In some embodiments, executing the instructions that cause the at leastone processor to determine the transmitted video comprises objectionablecontent further causes the at least one processor to: identify an objectof interest comprised in the transmitted video; compare the object ofinterest to permitted objects stored in a permitted objects database,wherein the permitted objects are facial features of the first andsecond users; and determine no match between the object of interest anda permitted object in the permitted object database.

In some embodiments, executing the instructions that cause the at leastone processor to implement the safety protocol further causes the atleast one processor to: modify at least a portion of the transmittedvideo prior to the transmitted video being displayed on at least one ofthe first user device and the second user device; suspend the videocommunication session for a predetermined amount of time; and terminatethe video communication session.

In some embodiments, executing the instructions further causes the atleast one processor to: generate an indication that a rule of videocommunication session has been violated in response to determining thatthe transmitted video comprises objectionable content; and transmittingthe indication that a rule of video communication session has beenviolated to at least one of the first and second user devices.

In some embodiments, the compatibility indications are generated basedat least in part on user input received from the first and second usersat the first and second user devices, respectively.

In some embodiments, the objectionable content is comprised in at leastone of an image frame of the video content and an audio portion of thevideo content.

In some embodiments, a non-transitory computer readable medium isprovided, wherein the non-transitory computer readable medium comprisescode, wherein the code, when executed by at least one processing deviceof a video communication server, causes the at least one processingdevice to perform the operations of: establishing, using a communicationunit comprised in the at least one processing device, a videocommunication connection between a first user of a first user device anda second user of a second user device, wherein the video communicationenables the first and second users to participate in a game session of avideo dating game; receiving, at a video analysis unit comprised in theat least one processing device and during the game session, videocontent transmitted between the first user device and the second userdevice; determining, using a recognition unit comprised in the at leastone processing device and during the game session, the video contentcomprises objectionable content based on analyzing the video content;and implementing, using a graphical processing unit (GPU) comprised inthe at least one processing device, a safety protocol during the gamesession based on determining the video content comprises objectionablecontent.

In some embodiments, the code that, when executed by the at least oneprocessing device of the video communication server, causes the at leastone processing device to perform the operations of determining the videocomprises objectionable content, further causes the at least oneprocessing device to perform the operations of: identifying, using therecognition unit, an object of interest comprised in the video content;comparing, using the recognition unit, the object of interest to objectsstored in a database; determining, using the recognition unit, at leasta partial match between the object of interest and an object in thedatabase.

In some embodiments, the code that, when executed by the at least oneprocessing device of the video communication server, causes the at leastone processing device to perform the operations of determining the videocomprises objectionable content, further causes the at least oneprocessing device to perform the operations of: identifying, using therecognition unit, an object of interest comprised in the video content;comparing, using the recognition unit, the object of interest to objectsstored in a database; determining, using the recognition unit, no matchbetween the object of interest and an object in the database.

In some embodiments, the code that, when executed by the at least oneprocessing device of the video communication server, causes the at leastone processing device to perform the operations of implement the safetyprotocol, further causes the at least one processing device to performat least one of the operations of: suspending, using the GPU, the gamesession for a predetermined amount of time; and terminating, using thecommunication unit, the video communication connection.

In some embodiments, the code that, when executed by the at least oneprocessing device of the video communication server, causes the at leastone processing device to perform the operations of implement the safetyprotocol, further causes the at least one processing device to performthe operations of: modifying, using the GPU, at least a portion of thevideo content prior to the video content being displayed on at least oneof the first user device and the second user device.

In some embodiments, the non-transitory computer readable medium furthercomprises code that, when executed by the at least one processing deviceof the video communication server, causes the at least one processingdevice to perform the operations of: generating, using the GPU, anindication that a rule of the video dating game has been broken inresponse to determining that the video content comprises objectionablecontent; and transmitting, using the communication unit, the indicationto at least one of the first and second user devices.

In some embodiments, the objectionable content is comprised in at leastone of an image frame of the video content and an audio portion of thevideo content.

In some embodiments, a method is provided, wherein the method comprises:establishing, using a communication unit comprised in the at least oneprocessing device, a video communication connection between a first userof a first user device and a second user of a second user device,wherein the video communication enables the first and second users toparticipate in a game session of a video dating game; receiving, at avideo analysis unit comprised in the at least one processing device andduring the game session, video content transmitted between the firstuser device and the second user device; determining, using a recognitionunit comprised in the at least one processing device and during the gamesession, the video content comprises objectionable content based onanalyzing the video content; and implementing, using a graphicalprocessing unit (GPU) comprised in the at least one processing device, asafety protocol during the game session based on determining the videocontent comprises objectionable content.

In some embodiments, determining the video content comprisesobjectionable content comprises: identifying, using the recognitionunit, an object of interest comprised in the video content; comparing,using the recognition unit, the object of interest to objects stored ina database; and determining, using the recognition unit, at least apartial match between the object of interest and an object in thedatabase.

In some embodiments, determining the video content comprisesobjectionable content comprises: identifying, using the recognitionunit, an object of interest comprised in the video content; comparing,using the recognition unit, the object of interest to objects stored ina database; and determining, using the recognition unit, no matchbetween the object of interest and an object in the database.

In some embodiments, implementing the safety protocol comprises at leastone of: suspending, using the GPU, the game session for a predeterminedamount of time; and terminating, using the communication unit, the videocommunication connection.

In some embodiments, implementing the safety protocol comprises:modifying, using the GPU, at least a portion of the video content priorto the video content being displayed on at least one of the first userdevice and the second user device.

In some embodiments, the method further comprises: generating, using theGPU, an indication that a rule of the video dating game has been brokenin response to determining that the video content comprisesobjectionable content; and transmitting, using the communication unit,the indication to at least one of the first and second user devices.

Further Comments

While various implementations in accordance with the disclosedprinciples have been described above, it should be understood that theyhave been presented by way of example only, and are not limiting. Thus,the breadth and scope of the implementations should not be limited byany of the above-described exemplary implementations, but should bedefined only in accordance with the claims and their equivalents issuingfrom this disclosure. Furthermore, the above advantages and features areprovided in described implementations, but shall not limit theapplication of such issued claims to processes and structuresaccomplishing any or all of the above advantages.

Various terms used herein have special meanings within the presenttechnical field. Whether a particular term should be construed as such a“term of art,” depends on the context in which that term is used.“Connected to,” “in communication with,” “communicably linked to,” “incommunicable range of” or other similar terms should generally beconstrued broadly to include situations both where communications andconnections are direct between referenced elements or through one ormore intermediaries between the referenced elements, including throughthe Internet or some other communicating network. “Network,” “system,”“environment,” and other similar terms generally refer to networkedcomputing systems that embody one or more aspects of the presentdisclosure. These and other terms are to be construed in light of thecontext in which they are used in the present disclosure and as thoseterms would be understood by one of ordinary skill in the art wouldunderstand those terms in the disclosed context. The above definitionsare not exclusive of other meanings that might be imparted to thoseterms based on the disclosed context.

Words of comparison, measurement, and timing such as “at the time,”“equivalent,” “during,” “complete,” and the like should be understood tomean “substantially at the time,” “substantially equivalent,”“substantially during,” “substantially complete,” etc., where“substantially” means that such comparisons, measurements, and timingsare practicable to accomplish the implicitly or expressly stated desiredresult.

Additionally, the section headings herein are provided for consistencywith the suggestions under 37 C.F.R. 1.77 or otherwise to provideorganizational cues. These headings shall not limit or characterize theimplementations set out in any claims that may issue from thisdisclosure. Specifically and by way of example, although the headingsrefer to a “Technical Field,” such claims should not be limited by thelanguage chosen under this heading to describe the so-called technicalfield. Further, a description of a technology in the “Background” is notto be construed as an admission that technology is prior art to anyimplementations in this disclosure. Neither is the “Summary” to beconsidered as a characterization of the implementations set forth inissued claims. Furthermore, any reference in this disclosure to“implementation” in the singular should not be used to argue that thereis only a single point of novelty in this disclosure. Multipleimplementations may be set forth according to the limitations of themultiple claims issuing from this disclosure, and such claimsaccordingly define the implementations, and their equivalents, that areprotected thereby. In all instances, the scope of such claims shall beconsidered on their own merits in light of this disclosure, but shouldnot be constrained by the headings herein.

Lastly, although similar reference numbers may be used to refer tosimilar elements for convenience, it can be appreciated that each of thevarious example implementations may be considered distinct variations.

What is claimed is:
 1. A non-transitory computer readable mediumcomprising code, wherein the code, when executed by at least oneprocessing device of a video communication server, causes the at leastone processing device to perform operations of: determining, using acommunication unit comprised in the at least one processing device, avideo communication connection associated with a first user of a firstuser device, the video communication connection being associated with atime duration; analyzing, using a graphical processing unit (GPU)comprised in the at least one processing device, video content of thefirst user of the first user device; determining, using an analysis unitcomprised in the at least one processing device, at least one emotion,of the first user, based on analyzing the video content; and generating,using a reporting unit comprised in the least one processing device,data for the first user based at least in part on the videocommunication connection or the video content, and the at least onedetermined emotion, wherein the time duration of the video communicationconnection comprises a time duration of the at least one determinedemotion.
 2. The non-transitory computer readable medium of claim 1,wherein the video content comprises real-time video content.
 3. Thenon-transitory computer readable medium of claim 1, wherein the timeduration of the video communication connection comprises a partial timeduration of the video communication connection.
 4. The non-transitorycomputer readable medium of claim 1, wherein the at least one determinedemotion is associated with at least one of a visual gesture or a vocalgesture.
 5. The non-transitory computer readable medium of claim 1,wherein the video content comprises at least one of media content,social content, or political content.
 6. The non-transitory computerreadable medium of claim 1, wherein the at least one determined emotionis associated with an object of interest in the video content.
 7. Thenon-transitory computer readable medium of claim 6, wherein the objectof interest comprises at least one of a facial feature, a facialgesture, a vocal inflection, a vocal pitch shift, a change in worddelivery speed, a keyword, an ambient noise or an environment noise.